﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using DTO;
using DAO;
using BUS;
using System.Windows.Forms;

namespace QLKS
{
    public partial class frmLapDanhMucPhong : Form
    {
        public frmLapDanhMucPhong()
        {
            InitializeComponent();
        }
        private void HienThiDanhSachPhong()
        {
            dgvDMPhong.DataSource = PhongBUS.getAllData();
        }
        
        private void frmLapDanhMucPhong_Load(object sender, EventArgs e)
        {
            dgvDMPhong.DataSource = PhongBUS.getAllData();
            cbbLoaiPhong.DataSource = PhongBUS.GetLoaiPhongforCombobox();
            cbbLoaiPhong.DisplayMember = "TenLoaiPhong";
            cbbLoaiPhong.ValueMember = "MaLoaiPhong";
        }
        
        private void dgvDMPhong_SelectionChanged(object sender, EventArgs e)
        {
            txtTenPhong.Text = dgvDMPhong.CurrentRow.Cells[1].Value.ToString();
            cbbLoaiPhong.SelectedValue = dgvDMPhong.CurrentRow.Cells[2].Value;
            int status = int.Parse(dgvDMPhong.CurrentRow.Cells[3].Value.ToString());
            if (status == 1)
                rdbtnHet.Checked = true;
            if (status == 0)
                rdbtnCon.Checked = true;
            txtGhiChu.Text = dgvDMPhong.CurrentRow.Cells[4].Value.ToString();
        }

        private void btnTim_Click(object sender, EventArgs e)
        {
            frmTraCuuPhong tracuu = new frmTraCuuPhong();
            tracuu.ShowDialog();
        }

        private void btnTaoMoi_Click(object sender, EventArgs e)
        {
            txtTenPhong.Text = "";
            rdbtnHet.Checked = false;
            txtGhiChu.Text = "";
            rdbtnCon.Checked = true;
            btnDelete.Enabled = false;
            btnUpdate.Enabled = false;
            btnTim.Enabled = false;
        }

        private void btnClose_Click(object sender, EventArgs e)
        {
            this.Close();
        }

        private void btnDelete_Click(object sender, EventArgs e)
        {
            PhongDTO dto = new PhongDTO();
            try
            {
                if (rdbtnHet.Checked == true)
                {
                    MessageBox.Show("Phòng đang được sử dụng", "Quan Ly DM Phong");
                }
                else
                {
                    int maphong = int.Parse(dgvDMPhong.CurrentRow.Cells[0].Value.ToString());
                    dto.MaPhong = maphong;
                    if (MessageBox.Show("Bạn có chắc muốn xoá phòng này?", "Thông báo", MessageBoxButtons.YesNo) == DialogResult.Yes)
                    {
                        PhongBUS.DeletePhong(dto);
                        MessageBox.Show("Xóa dữ liệu thành công", "Quan Ly DM Phong");
                    }
                    else
                    {
                        return;
                    }
                    HienThiDanhSachPhong();
                }
            }
            catch
            {
                MessageBox.Show(" Dữ liệu xóa bị lỗi", "Quan ly Phong");
            }   
        }

        private void btnUpdate_Click(object sender, EventArgs e)
        {
            try
            {
                if (dgvDMPhong.SelectedRows.Count > 0)
                {
                    int idmaPhong = Convert.ToInt32(dgvDMPhong.CurrentRow.Cells["MaPhong"].Value);
                    frmCapNhatPhong frm = new frmCapNhatPhong();
                    frm.m_maPhong = idmaPhong;
                    frm.ShowDialog();
                    HienThiDanhSachPhong();
                }
            }
            catch
            {
                MessageBox.Show("Cập nhật thông tin phòng thất bại", "Quan ly Phong");
            }
        }

        private void btnLapDanhMucPhong_Click(object sender, EventArgs e)
        {
            if (txtTenPhong.Text == "")
            {
                MessageBox.Show("Tên phòng không được để trống", "Thông báo");
                return;
            }
            if (cbbLoaiPhong.SelectedIndex < 0)
            {
                MessageBox.Show("Loại phòng không hợp lệ", "Thông báo");
                return;
            }
            PhongDTO dto = new PhongDTO();
            dto.TenPhong = txtTenPhong.Text;
            dto.MaLoaiPhong = Convert.ToInt32(cbbLoaiPhong.SelectedValue.ToString());
            dto.GhiChu = txtGhiChu.Text;
            dto.TinhTrangPhong = 0;
            // hien thi lai cac cntrol.
            btnDelete.Enabled = true;
            btnUpdate.Enabled = true;
            btnTim.Enabled = true;

            //DataTable dt2 = PhongBUS.PhongTheoTen(txtTenPhong.Text);
            //if (dt2.Rows.Count > 0)
            //{
            //    MessageBox.Show("Tên phòng này đã có, vui lòng chọn tên khác", "Thông báo");
            //    return;
            //}

            if (MessageBox.Show("Bạn có muốn thêm phòng?", "Thông báo", MessageBoxButtons.YesNo) == DialogResult.Yes)
            {
                PhongBUS.InsertPhong(dto);
                MessageBox.Show("Thêm phòng thành công", "Lập danh mục");
            }
            else
            {
                return;
            }
            HienThiDanhSachPhong();
        }
    }
}
